﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using KPIS.GERP.GIMS.MODEL;
using Telerik.Web.UI;

namespace KPIS.GERP.GIMS.IBLL
{
    public interface IBLLPrePurchaseRequest
    {
        IList<PrePurchaseRequestInfo> GetPrePurchaseRequest();
        IList<PrePurchaseRequestInfo> GetPrePurchaseRequest(int yearTypeSeq, int year, Nullable<int> JobSiteSeq, Nullable<int> PprType, Nullable<int> ProgressSeq, string StatusSeq);
        IList<PrePurchaseRequestInfo> GetPrePurchaseRequestUrgent();
        IList<PrePurchaseRequestInfo> GetPrePurchaseRequestUrgent(int yearTypeSeq, int year, Nullable<int> JobSiteSeq, Nullable<int> ProgressSeq, string StatusSeq);
        IList<PrePurchaseRequestInfo> GetPrePurchaseRequest(int year_type_seq, int year, Nullable<int> job_site_seq, Nullable<int> pc_type_seq, Nullable<int> ppr_type_seq, Nullable<int> ppr_method_seq, Nullable<int> prog_seq, string record_status);
        IList<PrePurchaseRequestInfo> GetCollectRequest();
        PrePurchaseRequestInfo GetPrePurchaseRequest(int seq);
        IList<PrePurchaseRequestInfo> GetCollectRequestGroupItem(Nullable<int> ItemSeq);
        IList<PrePurchaseRequestInfo> GetDuration(IList<PrePurchaseRequestInfo> infoList);
        IList<PrePurchaseRequestInfo> GetDistinctSeq(IList<PrePurchaseRequestInfo> infoList);
        IList<PrePurchaseRequestInfo> GetName(IList<PrePurchaseRequestInfo> infoList);
        IList<PrePurchaseRequestInfo> GetReason(IList<PrePurchaseRequestInfo> infoList);
        void Insert(PrePurchaseRequestInfo info);
        string Insert(PrePurchaseRequestInfo info, IList<PrePurchaseRequestItemInfo> infoListItem, IList<PrePurchaseRequestCommitteeInfo> infoListCommittee, IList<DocumentInfo> infoListFile);
        string Insert(PrePurchaseRequestInfo info, IList<PrePurchaseRequestItemInfo> infoListItem, IList<DocumentInfo> infoListFile);
        void Update(PrePurchaseRequestInfo info);
        void Delete(PrePurchaseRequestInfo info);
        void DeleteAll(IList<PrePurchaseRequestInfo> infoList);
        void DeleteFromDB(IList<PrePurchaseRequestInfo> infoList);
        void Restore(IList<PrePurchaseRequestInfo> infoList);
        void Confirm(PrePurchaseRequestInfo info, IList<PrePurchaseRequestRouteInfo> infoListRoute);
        void Approved(PrePurchaseRequestInfo info, IList<PrePurchaseRequestRouteInfo> infoListRoute);
        IList<HrmEmployeeInfo> GetPrePurchaseRequestOperationName(int pprTypeSeq);
        void SendToPurchaseRequest(int PprSeq, DateTime pr_date, int PrEmpSeq);
    }
}
